package com.px.idal;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.px.model.UserInfo;

public interface IUserInfoMapper {

	/**
	 * 登陆方法
	 * */
	@Select("select * from users_info_tb where user_name=#{user_name} and user_pass=#{user_pass}")
	public UserInfo validateUserLogin(UserInfo userInfo);

	/**
	 * 查询方法
	 * 查询所有用户
	 * 使用@Select 注解指明getAllUsers方法要执行的SQL
	 * */
	@Select("select * from users_info_tb")
	public List<UserInfo> getAllUsers();

	/**
	 * 查询方法
	 * 查询指定id用户
	 * 使用@Select 注解指明getAllUsersByUserId方法要执行的SQL
	 * */
	@Select("select * from users_info_tb where user_id=#{user_id}")
	public List<UserInfo> getUserByUserId(UserInfo userifInfo);

	/**
	 * Insert方法
	 * 增加用户
	 * 传参为对象方法
	 * */
	@Insert("insert into users_info_tb(user_name,user_pass)value(#{user_name},#{user_pass})")
	public int insertUser(UserInfo userInfo);

	/**
	 * 更新方法
	 * 更新指定user_name的用户的密码为user_pass
	 * */
	@Update("update users_info_tb set user_name=#{user_name},user_pass=#{user_pass} where user_name=#{user_name}")
	public int updateUserByUserName(UserInfo userInfo);

	/**
	 * 更新方法
	 * 更新指定user_id的用户的密码为user_pass
	 * */
	@Update("update users_info_tb set user_name=#{user_name},user_pass=#{user_pass} where user_id=#{user_id}")
	public int updateUserByUserId(UserInfo userInfo);

	/**
	 * 删除方法
	 * 删除指定user_name的用户
	 * */
	@Delete("delete from users_info_tb where user_name=#{user_name}")
	public int deleteUserByUserName(UserInfo userInfo);

	/**
	 * 删除方法
	 * 删除指定user_id的用户
	 * */
	@Delete("delete from users_info_tb where user_id=#{user_id}")
	public int deleteUserByUserId(UserInfo userInfo);

	/**
	 * 查询用户信息总条数
	 * 
	 * */
	@Select("select count(*) from users_info_tb")
	public int getAllUserCounts();

	/**
	 * 查询指定用户名用户是否存在
	 * 
	 * */
	@Select("select count(*) from users_info_tb where user_name=#{user_name}")
	public int checkUserNameIsExist(UserInfo userInfo);

	/**
	 * 查询指定ID用户是否存在
	 * 
	 * */
	@Select("select count(*) from users_info_tb where user_id=#{user_id}")
	public int checkUserIdIsExist(UserInfo userInfo);
}
